One technique for efficiently managing a large amount of data by a computer is to use a tree structure or a graph structure. A tree structure has a plurality of layers, and is a structure in which individual nodes are arranged such that a plurality of nodes in lower layers branch from a node serving as one element belonging to a certain layer. A graph structure is a structure composed of a pair of a finite set of nodal points and a finite set of edges (ordered pair of nodal points). Nodal points are regarded as nodes, and edges are represented by line segments connecting nodes. In the graph structure, individual nodes are arranged such that a plurality of nodes branch from one node in some cases. Thus, the graph structure can be displayed as a tree structure.
In cases where a plurality of nodes branch from a certain node, the certain node is called a parent node. The plurality of nodes are called child nodes. A node having no parent node is called a root node and is regarded as a highest-order node. A node having no child node is called a leaf node and is regarded as a lowest-order node.
A parent node has a pointer for a child node. The pointer includes information for accessing a parent node or a child node. This enables sequential scanning from a highest-order root node to a lowest-order leaf node, and thereby a target node can be searched for. When there are a plurality of child nodes, the parent node is capable of having a list of pointers for the plurality of child nodes.
An example of data which can be managed by using the above-described tree structure or graph structure is data “IT device”. “IT device” includes a “PC”, a “tablet terminal”, a “smart phone”, and so forth. A “PC” includes “main body”, “display”, and so forth, and “main body” includes “CPU”, “memory”, and so forth. Thus, a piece of data “IT device” can be represented as a root node, pieces of data “PC” and so forth can be represented as nodes in the subsequent layer, pieces of data “main body” and so forth can be represented as nodes in the subsequent layer, and pieces of data “CPU” and so forth can be represented as lowest-order nodes. Also, the piece of data “IT device” and the pieces of data “PC” and so forth can be connected by line segments, and the piece of data “PC” and the pieces of data “main body” and so forth can be connected by line segments.
FIG. 1 illustrates a case where pieces of data are managed using a tree structure or a graph structure, and the pieces of data are displayed on a screen using a tree structure. In FIG. 1, two tree structures are displayed in which each piece of data serves as a node constituting a tree structure. There is a demand for efficiently displaying many pieces of data managed using such a tree structure and efficiently accessing a target piece of data.
For example, when a user wants to perform an operation by focusing attention on two nodes, node X1 and node Y3 illustrated in FIG. 1, the user can easily perform an operation on node X1 and node Y3 if node X1 and node Y3 can be displayed as close as possible by omitting node X2, node X3, node X4, node Y1, and node Y2 between node X1 and node Y3. In a case where it is necessary to scroll the screen to display both node X1 and node Y3, the user can perform an operation without scrolling the screen if both node X1 and node Y3 can be displayed on one screen.
As a technique of enabling such display with omission, a technique has been suggested in which weighing based on a parameter such as a degree of importance is performed, a threshold is set, and paths whose value is equal to or smaller than the threshold are omitted on the basis of the weighting. In this technique, weights are assigned to edges, and only edges having a weight of a certain value or more and nodes including the edges are displayed.
Also, there has been suggested a graph display processing device including graph display means for displaying a graph in the form of a tree structure. The graph display means has a function of additionally displaying, when there is a node whose display is to be omitted, a symbol representing the existence of the node to be omitted in the subsequent stage, the symbol being displayed at the end of or near the node in the preceding stage of the node to be omitted.